// 引入express
const express = require('express');

// 执行express,返回一个对象
const app = express();

// 变量假装是数据库
let tempUser = [];

// 错误响应的通用函数
const sendErrorResponse = (res, message, status) => {
    res.send({ message, status });
};

// 注册接口
app.get('/register', (req, res) => {
    // 获取get请求参数
    const { username, password } = req.query;

    // 对参数进行正则校验 -- 用户名6个字符，密码6个数字
    if (!/^\w{6}$/.test(username)) return sendErrorResponse(res, '注册失败!用户名不符合要求!', 204);
    if (!/^\d{6}$/.test(password)) return sendErrorResponse(res, '注册失败!密码不符合要求!', 204);

    // 判断username是否已存在
    if (tempUser.some(item => item.username === username)) {
        return sendErrorResponse(res, '注册失败!用户名已存在!', 204);
    }

    // 将当前数据存到'数据库'中
    tempUser.push({ username, password });
    console.log(tempUser);

    // 注册成功的响应
    res.send({ message: '注册成功!', status: 200 });
});

// 登录接口
app.get('/login', (req, res) => {
    // 获取get请求参数
    const { username, password } = req.query;

    // 查找临时用户数据库中的用户
    const user = tempUser.find(item => item.username === username);

    // 验证用户名是否存在
    if (!user) {
        return sendErrorResponse(res, '登录失败! 用户名不存在!', 204);
    }

    // 验证密码是否正确
    if (user.password !== password) {
        return sendErrorResponse(res, '登录失败! 密码错误!', 204);
    }

    // 登录成功的响应
    res.send({ message: '登录成功!', status: 200 });
});

// 给服务器设置监听端口--占用某个端口
app.listen(3000, () => {
    console.log('3000端口服务已启用!!');
});
